﻿using Model;
using Model.DTO.Public.GetList;
using Model.DTO.Public.OperateId;
using Model.DTO.User;

namespace BLL.Interface
{
    /// <summary>
    /// 用户业务逻辑层接口
    /// </summary>
    public interface IUserBLL
    {
        /// <summary>
        /// 添加用户
        /// </summary>
        /// <returns></returns>
        Task<ResponseMessage> AddUser(AddUserDTO param);
        /// <summary>
        /// 修改用户
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        Task<ResponseMessage> EditUser(EditUserDTO param);
        /// <summary>
        /// 获取用户列表
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        Task<ResponseMessage> GetUserList(GetListDTO param);
        /// <summary>
        /// 登录
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        Task<ResponseMessage> Login(UserLoginDTO param);
        /// <summary>
        /// 注册
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        Task<ResponseMessage> Register(UserRegisterDTO param);
        /// <summary>
        /// 获取用户信息
        /// </summary>
        /// <param name="token"></param>
        /// <returns></returns>
        Task<ResponseMessage> GetUserInfo(string? token);
        /// <summary>
        /// 禁用用户
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        Task<ResponseMessage> BanUser(OperateIdDTO_INT param);
        /// <summary>
        /// 绑定用户类型
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        Task<ResponseMessage> BindUserTypes(OperateIdDTO_INT param);
        /// <summary>
        /// 获取用户绑定的用户类型列表
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<ResponseMessage> GetUserBindUserTypes(int id);
    }
}
